package org.dxy.infrastructure.persistent.db.mybatispuls.po.query;

import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * BOM物料项查询实体
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("bom_item_view")
public class BomItemViewPo {

    /** BOM物料项ID */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /** 关联的BOM ID */
    private Long bomId;

    /** 父级物料项ID（用于支持多层BOM结构） */
    private Long parentId;

    /** 物料编码 */
    private String materialCode;

    /** 物料名称 */
    private String materialName;

    /** 物料数量 */
    private Integer quantity;

    /** 物料单位 */
    private String unit;

    /** 备注 */
    private String remark;

    /** 层级（用于多层BOM展示） */
    private Integer level;

    /** 排序序号 */
    private Integer sortOrder;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /** 修改人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /** 逻辑删除标识 */
    @TableLogic
    private Integer deleted;
}